perm filename E.DIF[E,ALS]2 blob sn#143233 filedate 1975-02-06 generic text, type T, neo UTF8

	1) E vs. 2) E[CSP,SYS]	SRCCOM	02-06-75	08:04	PAGES 1,1

******** E **** PAGE 1  LINE 235
1)	C00547 00233	QFAST
1)	C00552 00234	PDL, PATCH, PAT, ZVARS, LEGTAB
1)	C00562 ENDMK
1)	C⊗;
*** E[CSP,SYS] *** PAGE 1  LINE 235
2)	C00549 00233	PDL, PATCH, PAT, ZVARS, LEGTAB
2)	C00551 00234	SPOOL
2)	C00559 ENDMK
2)	C⊗;


******** E **** PAGE 172  LINE 17
1)	SUBSIZ←←44
1)	SUBBUF←←45		;		to contain substitution string start
1)	;FREE STORAGE MACROS
*** E[CSP,SYS] *** PAGE 172  LINE 18
2)	SUBBUF←←44		;		to contain substitution string start
2)	;FREE STORAGE MACROS


******** E **** PAGE 173  LINE 108
1)		MOVNI B,SRSIZ*5-4
1)		TLZ F,TF1
*** E[CSP,SYS] *** PAGE 173  LINE 108
2)		MOVNI B,SRSIZ*5-1
2)		TLZ F,TF1


******** E **** PAGE 173  LINE 154
1)		ADDI B,SRSIZ*5-4+1
1)		MOVEM B,SUBSIZ(E)	;Substitution string size
1)		MOVE TT,SUBTMP		;Temporary store of \ bucky bits
*** E[CSP,SYS] *** PAGE 173  LINE 154
2)		MOVE TT,SUBTMP		;Temporary store of \ bucky bits


******** E **** PAGE 175  LINE 13
1)		MOVE T,QCHR
1)		CAIGE T,3			;To save work
1)		PUSHJ P,SFLUSH
*** E[CSP,SYS] *** PAGE 175  LINE 13
2)		PUSHJ P,SFLUSH


******** E **** PAGE 175  LINE 24
1)		MOVE T,QCHR
1)		CAILE T,1

	1) E vs. 2) E[CSP,SYS]	SRCCOM	02-06-75	08:04	PAGES 175,175

1)		JRST QFAST
1)		TRON F,ARG!REL
*** E[CSP,SYS] *** PAGE 175  LINE 22
2)		TRON F,ARG!REL


******** E **** PAGE 207  LINE 6
1)	SRCPG2:	MOVEI T,SBKNL
1)		MOVE D,[SRCPGB,,SRCPGF]
*** E[CSP,SYS] *** PAGE 207  LINE 6
2)		MOVEI T,SBKNL
2)		MOVE D,[SRCPGB,,SRCPGF]


******** E **** PAGE 232  LINE 29
1)		MOVEI T,15	;<CTRL><META><RETURN> COMES IN AS RETURN, <C><M><LINEFEED>
1)		IDPB T,ESILBP
1)		MOVEI T,612
1)		IDPB T,ESILBP
1)		FOO <(Comment here by >
*** E[CSP,SYS] *** PAGE 232  LINE 29
2)		MOVEI T,615	;;<CTRL><META><RETURN> COMES IN AS RETURN, <C><M><LINEFEED>
2)		IDPB T,ESILBP
2)	;	MOVEI T,612
2)	;	IDPB T,ESILBP
2)		FOO <(Comment here by >


******** E **** PAGE 232  LINE 51
1)		FOOC <
1)	π>	;CONTROL RETURN AT END OF NEW COMMENT POINTER AND CTRL π FOR COMMENT PAGE PUSHJ
1)		MOVE T,[440600,,EDFIL]
*** E[CSP,SYS] *** PAGE 232  LINE 51
2)		MOVEI T,215
2)		IDPB T,ESILBP
2)		FOOC <π>	;CONTROL RETURN AT END OF NEW COMMENT POINTER AND CTRL π FOR COMMENT PAGE PUSHJ
2)		MOVE T,[440600,,EDFIL]


******** E **** PAGE 232  LINE 56
1)		IDPB TT,ESILBP>
*** E[CSP,SYS] *** PAGE 232  LINE 57
2)		CAIE TT,40
2)		IDPB TT,ESILBP>


******** E **** PAGE 232  LINE 61
1)		IDPB TT,ESILBP>

	1) E vs. 2) E[CSP,SYS]	SRCCOM	02-06-75	08:04	PAGES 232,232

*** E[CSP,SYS] *** PAGE 232  LINE 63
2)		CAIE TT,40
2)		IDPB TT,ESILBP>


******** E **** PAGE 232  LINE 67
1)		IDPB TT,ESILBP>
*** E[CSP,SYS] *** PAGE 232  LINE 70
2)		CAIE TT,40
2)		IDPB TT,ESILBP>


******** E **** PAGE 232  LINE 72
1)		IDPB TT,ESILBP>
*** E[CSP,SYS] *** PAGE 232  LINE 76
2)		CAIE TT,40
2)		IDPB TT,ESILBP>


******** E **** PAGE 232  LINE 76
1)		FOO <P)
1)	>
1)		FOOC <∞WX>
1)		FOO <M
1)	> ↔	FOOC <V>
1)		SKIPE ESCMTZ	;WORD AFTER ESCMTX BLOCK.  SHOULD NOT HAVE BEEN WRITTEN INTO
*** E[CSP,SYS] *** PAGE 232  LINE 81
2)		FOO <P)>
2)		MOVEI T,15
2)		IDPB T,ESILBP
2)		FOOC <∞WX>
2)		FOO <M> 
2)		MOVEI T,15 ↔ IDPB T,ESILBP
2)		FOOC <V>
2)		SKIPE ESCMTZ	;WORD AFTER ESCMTX BLOCK.  SHOULD NOT HAVE BEEN WRITTEN INTO


******** E **** PAGE 232  LINE 84
1)	;	OUTSTR [ASCIZ ↔
1)	;Type/edit your comment, then type <CTRL>G to return.  ↔]
1)	;	DPYPOS -1020	;POSITION OFF THE SCREEN SO USER DOESNT HAVE TO SEE TRASH
1)	ESGK:	PUSHJ P,ESDBG	;DEBUG FEATURE
1)		PTWRS9 [0↔ESCMTX]
*** E[CSP,SYS] *** PAGE 232  LINE 91
2)		OUTSTR [ASCIZ ↔
2)	Type/edit your comment, then type <CTRL>G to return.  ↔]
2)		DPYPOS -1020	;POSITION OFF THE SCREEN SO USER DOESNT HAVE TO SEE TRASH
2)	;ESGK:	PUSHJ P,ESDBG	;DEBUG FEATURE

	1) E vs. 2) E[CSP,SYS]	SRCCOM	02-06-75	08:04	PAGES 232,232

2)		PTWRS9 [0↔ESCMTX]


******** E **** PAGE 232  LINE 92
1)		DPYSIZ 10001
1)		DPYPOS 1
1)	ESDBG1:	ILDB TT,T	;GET 9 BIT BYTE
1)		JUMPE TT,[SNEAKW TT, ↔ POPJ P,]
1)		TRZE TT,200	;CONTROL BIT?
*** E[CSP,SYS] *** PAGE 232  LINE 99
2)		DPYSIZ 30001
2)		DPYPOS 1
2)	ESDBG1:	ILDB TT,T	;GET 9 BIT BYTE
2)		JUMPE TT,[INCHRW TT ↔ POPJ P,]
2)		TRZE TT,200	;CONTROL BIT?


******** E **** PAGE 232  LINE 147
1)	ESBAKB:	;BACK UP OVER THE FILE NAME
*** E[CSP,SYS] *** PAGE 232  LINE 154
2)	ESCCR:	;GOT A '(Comment h' at beg of line.  COMMENT POINTER
2)		CAIE A,"("	;DOUBLE CHECK
2)		FATAL INTERNAL CONFUSION -- COMMENT POINTER WENT AWAY
2)		FOR ZZZ ε <Comment here by ∀∀∀ is on page > <
2)		JSP D,(D)	;GET THE CHARACTER
2)		 FATAL PREMATURE END OF COMMENT POINTER
2)		IFN "ZZZ"-"∀",<	;CHECK THE CHARACTER AGAINST STRING EXCEPT FOR ∀'S
2)			CAIE A,"ZZZ"
2)			FATAL CONFUSION WHILE READING COMMENT POINTER.  PLEASE REPORT TO SGK
2)			>;IFN
2)		>;FOR
2)		MOVEI T,
2)	ESCCR1:	JSP D,(D)	;GET A CHARACTER
2)		 FATAL PREMATURE END OF COMMENT POINTER WHILE READING PAGE.
2)		
2)		
2)	ESBAKB:	;BACK UP OVER THE FILE NAME


******** E **** PAGE 232  LINE 214
1)		JRST .ILDB0	;NOW MAKE UP BYTE POINTER, CHARACTER COUNT, AND DO IT
*** E[CSP,SYS] *** PAGE 232  LINE 237
2)		MOVE B,(A)	;NOW GET FIRST WORD OF NEW LINE TO SEE IF IT IS COMMENT
2)		CAMN B,["(Comm"]
2)		JRST [	MOVE B,1(A)	;WIN.  SEE IF NEXT WORD MAKES IT TOO
2)			CAMN B,["ent h"]
2)			JRST .+1	;OH WELL
2)			MOVEI D,ESCCR	;MUNG THIS SO WE WILL RETURN TO COMMENT HACKER

	1) E vs. 2) E[CSP,SYS]	SRCCOM	02-06-75	08:04	PAGES 232,232

2)			]
2)		JRST .ILDB0	;NOW MAKE UP BYTE POINTER, CHARACTER COUNT, AND DO IT


******** E **** PAGE 233  LINE 1
1)	;QFAST
1)	QFAST:	JUMPGE D,.+2
1)		TRNN F,REL
1)		SKIPA A,SRCL
1)		ADD A,SRCL
1)		PUSHJ P,SETARR
1)		MOVE T,SRCOFF
1)		MOVEI A,1
1)		MOVEM A,JCNT		;Probably not needed
1)		MOVE E,SAVEE		;This may have been changed
1)		SETZB B,G
1)		MOVE A,ARRLIN		;Set by SETARR to line for action
1)		ADD A,[440700,,LLDESC]	;Location where text starts
1)		HRRZM A,JPTR		;Location of source line
1)		MOVE D,[440700,,BUF]
1)		MOVEM D,JWPT		;Buffer pointer at start
1)		MOVEI Q,SUBBUF(E)	;Substitution text location
1)		ADD Q,[441100,,0]	;In 9-bit with META bit on
1)		SETOM BUF
1)		MOVE T,[BUF,,BUF+1]
1)		BLT T,BUF+37		;Set up buffer properly
1)		MOVN B,SRCOFF		;Character position to start deletion
1)		HRLZS B
1)		ILDB C,A
1)		IDPB C,D		;Copy text to deletion point
1)		AOBJN B,.-2
1)		MOVE T,SRCSIZ(E)
1)		IBP A			;Index over replaced text
1)		SOJG T,.-1		;Count REPLACEMENTS
1)		MOVE T,SUBSIZ(E)	;Get size of substitution string
1)		ADD T,B
1)		SUBI T,149		;Test for possible overflow
1)		JUMPG T,SUBOVE
1)		MOVN T,SUBSIZ(E)
1)		HRL B,T
1)		ILDB C,Q
1)		ANDI C,177		;Remove the META bit
1)		IDPB C,D
1)		AOBJN B,.-3
1)		MOVE T,B		;This will test for overflow again
1)		SUBI T,149		;Limit to LINE-BUFFER size
1)		HRL B,T
1)		ILDB C,A

	1) E vs. 2) E[CSP,SYS]	SRCCOM	02-06-75	08:04	PAGES 233,233

1)		JUMPE C,.+4
1)		IDPB C,D
1)		AOBJN B,.-3
1)		JRST SUBOVE
1)		IDPB C,D
1)		TLNE D,760000
1)		JRST .-2		;Pad out with nulls
1)	;Now we must give up the space originally used by the line
1)		MOVE A,JPTR			;Location of line
1)		LDB T,[111100,,1(A)]		;Get 2nd 9 bits from right of 1(A)
1)		MOVNI T,(T)			;and do 1's complement of T
1)		ADDM T,CHARS		;add this to # in CHARS or ATTSIZ.
1)		HRRZ C,(A)			;Get line forward pointer
1)		MOVEM C,JPTR			;and put it in JPTR.
1)		MOVSI T,JPTR			;with JPTR location in left half
1)		HLLM T,(C)			;of pointer for line pointed to.
1)		PUSHJ P,FSGIVE			;Give up storage space.
1)	;Then we create a new line with proper pointers
1)		ADDI G,2(B)			;Increase G by 2 + # of characters
1)		ADDM G,CHARS		;Previously debited by the number in original line
1)		LSH G,11			;Move G to byte position.
1)		IORI G,(B)			;IOR in the actual char count.
1)		MOVEI B,-BUF+1+LLDESC(A)	;Number of words.
1)		PUSHJ P,FSGET			;Get space to store line.
1)		MOVSI TT,BUF			;Starting location of source
1)		HRRI TT,LLDESC(A)		;and starting location of destination.
1)		BLT TT,-2(T)			;and now BLT, ending at location -2(T)
1)		MOVSI T,TXTCOD			;A fancy way to store 2 in left half!
1)		HLLM T,-1(A)			;To 1st header word.
1)		HRRZM G,1(A)			;Char. cnts in right of 3rd header word.
1)		AOS T,TXTNUM
1)		MOVEM T,2(A)			;To 4th header word.
1)		HLRZ T,JLPT
1)		CAIE T,PAGE
1)		SKIPGE 1(T)
1)		TRO F,UPDTXT			;Flag change in first line.
1)		TRO F,WRITE
1)		HRLI T,JLPT
1)		MOVSM T,(A)
1)		HRRM A,(T)
1)	;Update count and test for continuance
1)		AOS SUBCNT
1)		MOVE TT,QCHR
1)		CAIN TT,3
1)		JRST QFAST3			;Repeat
1)		SETZM QCHR			;Stop further action
1)		POPJ P,				;and go back
1)	QFAST3:	AOS P

	1) E vs. 2) E[CSP,SYS]	SRCCOM	02-06-75	08:04	PAGES 233,233

1)		MOVE T,@P
1)		SUBI T,1
1)		MOVEM T,@P
1)		JRST SRCPG2
1)	SUBOVE:	OUTSTR [ASCIZ /
1)	Substitution will cause line to exceed LINE-BUFFER size.
1)	 Do you want this? (Y or N) /]
1)	;PDL, PATCH, PAT, ZVARS, LEGTAB
*** E[CSP,SYS] *** PAGE 233  LINE 1
2)	;PDL, PATCH, PAT, ZVARS, LEGTAB


******** E **** PAGE 234  LINE 46
*** E[CSP,SYS] *** PAGE 234  LINE 39
2)	;SPOOL
2)	;The following code is designed to create a new file with an unusual name
2)	;and to copy the current page into this file and finally to spool and delete
2)	;this file with an alias name corresponding to the file from which the data came.
2)	;It does this the simplest possible way which is to COPY-ATTACH the page, do a
2)	;file switch to this new file (a <control>λ) then a <CONTROL>E, issue a spooling
2)	command and then do a <CONTROL>H to get back.
2)	SPOOL:	MOVEI T,0
2)		MOVEI TT,667
2)		PTWR1W T
2)		PTWR1W T
2)		MOVEI TT,666
2)		PTWR1W T
2)		MOVEI TT,703		;A <META><CONTROL>C to copy 510 lines 
2)		PTWR1W T
2)		MOVEI TT,606		;A <META><CONTROL>ε
2)		PTWR1W T
2)		SLEEP T			;To give the system time to empty the buffer
2)	;name must be inserted here
2)		MOVEI TT,[ASCIZ \.LPT[SPL,SYS]/N/C\]
2)		HRL TT,[440700]
2)		PTWRS7 T
2)		MOVEI TT,15		;CR
2)		PTWR1W T
2)		MOVEI TT,12		;LF
2)		PTWR1W T
2)		MOVEI TT,705		;A <META><CONTROL>E to set the attached buffer down
2)		PTWR1W T
2)		MOVEI TT,710		;A <META><CONTROL>H
2)		PTWR1W T
2)		PTYGET T
2)		JRST SPOOL1
2)		MOVEI TT,[ASCIZ /SPOOL /]
2)		HRL TT,[440700]

	1) E vs. 2) E[CSP,SYS]	SRCCOM	02-06-75	08:04	PAGES 234,234

2)		PTWRS7 T
2)	;
2)		POPJ P,			;And that's that.